#!/bin/bash


# 0  基本

GAN_PLATFORM_NAME="超甜B&D系统"    #--- 给本构建发布系统取个名字
BUILD_LOG_WEBSITE_DOMAIN_A="build-log"    #--- 这个需要与【nginx.list】中【项目名】为【build-log】的【域名A记录】保持一致，一般无需更改此项
ERROR_EXIT='NO'                    #--- 出错立即退出，YES|NO

# DEBUG 模式
DEBUG='YES'                         #--- YES|NO，如果设置DEBUG='YES'，则将容器所有内部端口publish出来，一般用于【dev】环境
# Debug模式容器随机端口范围
DEBUG_RANDOM_PORT_MIN=45000        #--- 最小
DEBUG_RANDOM_PORT_MAX=49999        #--- 最大

# 根据需要选择【npm|cnpm】
NPM_BIN='npm'



# 1  Build

## 仓库及分支
export GIT_REPO_URL_BASE="git@g.zjlh.lan:gc"
#export GIT_REPO_URL_BASE="https://g.zjlh.lan/gc"
export GIT_BRANCH='develop'

## 跳过测试
export BUILD_SKIP_TEST='NO'    #--- YES|NO



# 2  Docker集群相关

##  运行方式
# fuck    : 直接执行命令； 
# notfuck : 打印命令到屏幕，自行拷贝执行
export FUCK='notfuck'

##  集群类型

## ----------------------------------------
## A  swarm 

### 远程管理
#export SWARM_DOCKER_HOST="ssh://root@192.168.11.141:2222"
export SWARM_DOCKER_HOST="tcp://192.168.11.71:2375"

### 基本运行参数
#### 网络
export NETWORK_SWARM='onet_1'         #--- 默认值，可以在服务清单中指定其他

### docker log driver
export DOCKER_LOG_DRIVER='json-file'
#export DOCKER_LOG_DRIVER='fluentd'

#### Json file
export JSON_LOG_MAX_FILE_SIZES="100m"
export JSON_LOG_MAX_FILES=5

#### Fluentd
#export FLUENTD_SERVER_ADDR="192.168.11.83"
#export FLUENTD_SERVER_PORT="24224"

## ----------------------------------------
## B  k8s

export K8S_NAMESAPCE='default'                       #--- 默认值，可以在服务清单中指定其他
export DOCKER_REPO_SECRET_NAME='my-docker-repo-pw'   #--- 请自行创建相关secret


## ----------------------------------------
## C  docker-compose

### 网络
export NETWORK_COMPOSE='net_gc'

## ----------------------------------------



# 3 Build 与 Docker

## 密码相关 ( *** 存放在【~/.my_sec/*.sec/*.sec】下的文件皆包含密码，不推荐保存到代码仓库 *** )
for FILE in $(find  "${HOME}/.my_sec"  -type f  -name '*.sec')
do
    . ${FILE}
done

## Container env(自定义希望注入到docker容器的环境变量)
export CONTAINER_ENVS_PUB_FILE="${HOME}/.my_sec/container-envs-pub.sec"




##############################################################
#
# 以下部分不需要修改
#
# 0 组装日志
# https://docs.docker.com/config/containers/logging/configure/
export DOCKER_LOG_PUB="--log-driver=json-file  --log-opt max-size=${JSON_LOG_MAX_FILE_SIZES:-100m}  --log-opt max-file=${JSON_LOG_MAX_FILES:-5}  --log-opt labels=\${SERVICE_NAME}"
#
case "${DOCKER_LOG_DRIVER}" in
    gelf)
        export DOCKER_LOG_PUB="--log-driver=gelf  --log-opt gelf-address=udp://${GELF_SERVER_ADDR}:${GELF_SERVER_PORT:-12201}  --log-opt tag=\${SERVICE_NAME}"
        ;;
    fluentd)
        export DOCKER_LOG_PUB="--log-driver=fluentd  --log-opt fluentd-address=udp://${FLUENTD_SERVER_ADDR}:${FLUENTD_SERVER_PORT:-24224}  --log-opt tag=\${SERVICE_NAME}"
        ;;
    json-file)
        export DOCKER_LOG_PUB="--log-driver=json-file  --log-opt max-size=${JSON_LOG_MAX_FILE_SIZES:-100m}  --log-opt max-file=${JSON_LOG_MAX_FILES:-5}  --log-opt labels=\${SERVICE_NAME}"
        ;;
    *)
        export DOCKER_LOG_PUB="--log-driver=json-file  --log-opt max-size=${JSON_LOG_MAX_FILE_SIZES:-100m}  --log-opt max-file=${JSON_LOG_MAX_FILES:-5}  --log-opt labels=\${SERVICE_NAME}"
        ;;
esac



